import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import UnoCSS from "unocss/vite"
import presetUno from "@unocss/preset-uno"
import presetPxToVw from "unocss-preset-px-to-vw"

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    UnoCSS({
      presets: [presetUno(), presetPxToVw({ viewportWidth: 1920 })],
    }),
  ],
  server: {
    hmr: {
      // 确保热更新正常工作
      overlay: true, // 启用错误覆盖
      // 如果你在使用WSL或远程开发环境，可能需要以下配置
      // host: true,
      // port: 24678, // 默认的HMR端口
    },
    proxy: {
      // 你可以根据需要设置代理
    },
    headers: {
      "Access-Control-Allow-Origin": "*", // 设置CORS
    },
    watch: {
      // 提高文件监视的性能
      usePolling: true, // 在某些系统上可能需要启用轮询
      interval: 100, // 轮询间隔（毫秒）
    },
  },
  build: {
    sourcemap: true, // 开启sourcemap
    rollupOptions: {
      output: {
        manualChunks: (id) => {
          if (id.includes("node_modules")) {
            return "vendor"
          }
        },
      },
    },
  },
  resolve: {
    alias: {
      "@": "/src",
    },
  },
  // 确保开发时的优化不会影响热更新
  optimizeDeps: {
    exclude: [], // 如果某些依赖导致问题，可以在这里排除
  },
})

